/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.ipartek.formacion.gestformwww.modelo.clases;

import com.ipartek.formacion.gestformwww.modelo.interfaces.IDAO;
import java.util.HashMap;
import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author Aratz Setién
 */
public class SQLServerIDAOFactory {
     private static Map iDAO = new HashMap();
    /**
     * Descripción: si no existe la acción la instancia y si no la crea y la mapea.
     * @param classname
     * @param loader
     * @return devuelve la instancia de una clase que implement IDAO o null
     * 
     */
    public static IDAO getIDAO(String classname, ClassLoader loader)  {

        IDAO objeto = (IDAO) iDAO.get(classname);
        if (objeto == null) {
            try {
                Class klass = loader.loadClass(classname);
                objeto = (IDAO) klass.newInstance();
    //            action.inicializa(this);
                iDAO.put(classname, objeto);
            } catch (InstantiationException ex) {
                Logger.getLogger(SQLServerIDAOFactory.class.getName()).log(Level.SEVERE, null, ex);
            } catch (IllegalAccessException ex) {
                Logger.getLogger(SQLServerIDAOFactory.class.getName()).log(Level.SEVERE, null, ex);
            } catch (ClassNotFoundException ex) {
                Logger.getLogger(SQLServerIDAOFactory.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
        return objeto;

    }
    
    
}
